1. Field of the Invention
The invention refers to a voice-over-IP (VoIP) telephone computer system which provides for telephone communication over data networks like the public Internet.
2. Background Art
Voice communication over data networks is a more and more growing kind of communication. In the past there have been separated communication infrastructures for data networking and voice communications. Currently “Unified Communication” is a slogan, which states that both types of communication are growing together and a common packet based infrastructure will be used to transport both data packets and voice packets. Since TCP/IP is the protocol family that is used for transport of voice data over said common infrastructure, the method of sending voice packets over data networks is called “Voice-over-IP” (VoIP). Due to the low prices of broadband Internet access VoIP is a more and more popular alternative and addendum to the traditional “Public Switched Telephone Network” (PSTN).
There are several alternatives to use phone hardware in connection with VoIP. One of the possible solutions would be to use specific VoIP phones with integrated network interface cards (NICs) that can directly be attached to data networks e.g. Ethernet networks. Another alternative would be to use so called VoIP-adapters to connect traditional phone hardware to data networks. One of the simplest and in many cases cheapest solution is called PC-based VoIP, i.e. the usage of existing computer hardware in connection with a headset that may be plugged to the computer using the USB interface or a sound card, which is an integral or accessory part of the computer. To complete the necessary components for PC-based telephony an additional VoIP-Software must be installed at the computer. This construct is called a “softphone”.
For a better understanding of the invention first of all an example for a prior art VoIP telephony computer system is explained in the following before turning to the invention by reference to the first two drawing figures. FIG. 1 illustrates the major functional components of a PC-based VoIP telephony computer system. A client computer 1 is equipped with an I/O-audio device 2, which may be for instance a headset, and a special telephony software client 3, which provides for establishing phone calls from said client computer 1. The latter is connected to a remote network 4, which in turn is connected to the public Internet 6 via a firewall 5. In a similar way a VoIP private branch exchange (PBX) device 9 has a connection to the public Internet 6 via a second firewall 7. The VoIP-PBX device 9, which is responsible for managing phone users/clients and for establishing phone calls, may be connected to a traditional PSTN-PBX device 10, which provides connections to the traditional Public Switched Telephone Network (PSTN) 11. Such a combination allows for establishing phone calls from the client-computer 1 to different destinations, for instance:                to VoIP phones or computer based phones 12a in a corporate network,        to VoIP phones or computer based phones 12b in the public Internet 6 or        to traditional phones 12c in the PSTN.        
In this scenario the VoIP PBX device 9 plays a key role. Before two phone endpoints are able to communicate directly there has to be a connection establishment via the VoIP-PBX device 9. For the dial up procedure specific protocols like H.323 or SIP (Session Initiating Protocol) are used. The SIP protocol will be explained in more detail in a later section of the prior art description.
Another technical term which has to be explained in connection with the present invention is the so-called “Click-to-Call” function. Click-to-Call (CtC) refers to the process of starting a telephone call by clicking a button on a web-page. CtC is divided in two general styles. The first style is callback, where the user enters his phone number and an automatism ensures that the user will be called back immediately. As this method has no specific relevance for the current invention it will not be discussed here in detail.
The second style uses the computer to complete the call typically by PC-based VoIP telephony as mentioned above. This means a softphone has to be installed at the user's computer. If such a softphone is not yet installed it must be downloaded for example from the web server from which the CtC process was initiated.
Today most WEB-clients comprise a WEB-browser with an integrated Java virtual machine. Using such a Web-browser it is possible to download and execute applet type applications like a Java® applet. A Java® applet is a software program, usually written in the Java® programming language, which can be executed by Web-browsers for many operating system platforms, including MS Windows®, UNIX®, Mac OS® and Linux® in the environment of a Java® virtual machine. Alternatively ActiveX®-controls as applet type applications can be used for some functionality that is not included in the Web-browser. ActiveX® is a Microsoft® technology and denotes reusable software components that can run in some WEB-browsers, for instance Microsoft's “Internet Explorer®”.
Using technologies like Java® applets or ActiveX®-controls it is possible to run web-based applications on a computer without the necessity to manually install specific client software. In the field of Internet telephony (VoIP) this means the downloaded telephony client can run in a web-based environment and the user does not need to have administrator rights. This solution is known as “webphone”.
Although many other signalling protocols for Voice-over-IP exist currently primarily the SIP protocol is used for signalling. SIP, the Session Initiation Protocol, is defined by the Internet Engineering Task Force (IETF) in the document RFC 3261. SIP is a signalling protocol that can be used to create two-party, multiparty or multicast sessions, for example (Internet) telephone calls, multimedia distribution and multimedia conferences. SIP clients use the transport protocols TCP or UDP (typically on port 5060) to connect to SIP servers or other SIP end points. SIP is used in setting up and terminating voice or video calls.
FIG. 2 illustrates a typical SIP-based connection establishment of a VoIP phone call. In a first step a telephone #1 that initiates a phone call sends an INVITE message to the SIP proxy server, which in most cases is a functional component of a VoIP PBX device 9 to which it is assigned. This SIP proxy server forwards this INVITE message to telephone #2. In case of telephone #2 is not assigned to the same SIP proxy servers as telephone #1 the SIP proxy server has to forward the INVITE message to another SIP proxy server to which telephone #2 is assigned.
In next step b telephone #2 answers to said INVITE message with a RINGING message. Again this message has to pass the SIP proxy server as well as a message named “OK” which is transmitted from telephone #2 to telephone #1 in a third step c.
In a fourth step d an acknowledgment message (ACK) is sent from telephone #1 to telephone #2. This time the message is sent directly from the initiator to the responder without crossing the VoIP-PBX device 9. In the following steps, namely step e—exchange of audio data—, step f—BYE message for terminating the connection—and step g—OK message to accept the previous BYE message—data are exchanged directly between the both phone partners without interaction of the VoIP-PBX device 9.
It is important to note that during step a (INVITE) a protocol named SDP—“Session Description Protocol”—is used to exchange certain parameters, amongst others the IP-addresses of the participating phone partners.
When SIP-based VoIP is used three types of data have to be exchanged:                SIP, the “Session Initiation Protocol” including SDP, the “Session Description Protocol” (see RFC 4566)        RTP, the “Real-time Transport Protocol” (see RFC 3550), usually UDP and        RTCP, the “Real-time Control Protocol” (see RFC 3550), usually UDP.        
Instead of RTP, SRTP can also be used. SRTP is the Secure Real-time Transport Protocol (see RFC 3711).
These protocols are well known for persons skilled in the art for years, but unfortunately they cannot be used everywhere via the public Internet. Today most of the private data networks but also many of public networks worldwide are connected to the public Internet through a firewall. In the majority of cases these firewalls block all traffic from the internal networks to the public Internet, with the exception of outgoing connections for some specific protocols like HTTP (“Hypertext Transport Protocol”—TCP port 80) and HTTPS (“Hypertext Transport Protocol Secure”—TCP port 443). HTTP and HTTPS are not blocked since these protocols are usually used for “browsing” the Internet. The security policies of most companies allow using said protocols to communicate with destinations in the public Internet.
Since the protocols, which are commonly used for VoIP telephony, are blocked at most firewalls by default, establishing an Internet-based phone call is impossible or at least hindered. This is a general problem, which the present invention tries to solve.